package net.guoyixian.admin.mapper;

import java.util.Set;

import net.guoyixian.admin.pojo.User;
import net.guoyixian.common.web.Where;

import org.apache.ibatis.annotations.Param;

import com.github.miemiedev.mybatis.paginator.domain.PageBounds;
import com.github.miemiedev.mybatis.paginator.domain.PageList;

public interface ManagerMapper {

	/**
	 * 根据用户名、密码查询
	 * 
	 * @param user
	 * @return
	 */
	public User queryByUsernameAndPassword(User user);

	/**
	 * 根据用户名查询
	 * 
	 * @param username
	 * @return
	 */
	public User queryByUsername(String username);

	/**
	 * 按照分页查询
	 * 
	 * @param bounds
	 * @return
	 */
	public PageList<User> queryList(PageBounds bounds);

	/**
	 * 按照where条件分页查询
	 * 
	 * @param bounds
	 * @param where
	 * @return
	 */
	public PageList<User> queryListByWhere(PageBounds bounds,
			@Param("where") Where where);

	/**
	 * 通过ID查询数据
	 * 
	 * @param id
	 * @return
	 */
	public User queryByID(@Param("id") String id);

	/**
	 * 通过where条件查询
	 * 
	 * @param where
	 * @return
	 */
	public User queryByWhere(@Param("where") Where where);

	/**
	 * 新增数据
	 * 
	 * @param t
	 */
	public void save(User user);

	/**
	 * 更新数据
	 * 
	 * @param t
	 */
	public void update(User user);

	/**
	 * 通过ID删除数据
	 * 
	 * @param id
	 * @return 返回受影响的条数
	 */
	public Integer deleteByID(@Param("id") Long id);

	/**
	 * 通过IDs删除数据
	 * 
	 * @param ids
	 * @return 返回受影响的条数
	 */
	public Integer deleteByIDS(@Param("ids") Long[] ids);

	public Set<String> findRoles(@Param("username") String username);

	// public Set<String> findRoles(String username) ();

}
